const connection = require('../app/database')

class CommentService{
  async create(momentId,content,userId){
    const statement = `
      INSERT INTO comment (content,moment_id,user_id) VALUES(?,?,?);
    `
    const [result] = await connection.execute(statement,[content,momentId,userId])
    return result
  }

  async reply(momentId, content, commentId, userId){
    const statement = `
      INSERT INTO comment (content,moment_id,user_id,comment_id) VALUES(?,?,?,?);
    `
    const [result] = await connection.execute(statement,[content,momentId,userId,commentId])
    return result
  }

  async update(commentId,content){
    const statement =  `
      UPDATE comment SET content = ? WHERE id = ?;
    `
    const [result] = await connection.execute(statement,[content,commentId])
    return result
  }

  async remove(id){
    const statement = `
      DELETE FROM comment WHERE id = ?;
    `
    const [result] = await connection.execute(statement,[id])
    return result
  }

  async getCommentList(momentId){
    const statement = `
    SELECT 
      m.id, m.content, m.comment_id commentId,
      json_object('id',u.id,'name',u.name) user
    FROM comment m
    LEFT JOIN user u ON u.id = m.user_id
    WHERE moment_id = ?;
    `
    const [result] = await connection.execute(statement,[momentId])
    return result
  }
}

module.exports = new CommentService()